/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.jembi.openhim.transformers; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Map; import org.mule.api.transformer.TransformerException; import org.mule.config.i18n.Message; import org.mule.transformer.AbstractTransformer; public class ParamMapToUrlString extends AbstractTransformer{ @SuppressWarnings("unchecked") @Override protected Object doTransform(Object obj, String enc) throws TransformerException { Map<String, String> paramMap = null; if (!(obj instanceof Map)) { throw new TransformerException(null); } else { paramMap = (Map<String, String>) obj; } StringBuilder sb = new StringBuilder("?"); for (String param : paramMap.keySet()) { String value = paramMap.get(param); if (sb.length() > 1) { sb.append("&"); } try { sb.append(URLEncoder.encode(param, enc) + "=" + URLEncoder.encode(value, enc)); } catch (UnsupportedEncodingException e) { throw new TransformerException((Message)null, e); } } return sb.toString(); } }